﻿using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using WebMatrix.WebData;

namespace Consulta.Controllers
{
  // [Authorize]
    public class UsuarioController : Controller
    {
        private DataContext dataContext = new DataContext();

        public ActionResult Index()
        {
            var usuarios = dataContext.usuarios;
            return View(model: usuarios);
        }


        public ActionResult IndexUsuario()
        {
            List<Model.Consulta> consultas = new List<Model.Consulta>();
            return View(consultas);
        }

        [HttpPost]
        public ActionResult IndexUsuario(Fechas fecha)
        {
            List<Model.Consulta> consultas = new List<Model.Consulta>();
            
            int id = @WebSecurity.CurrentUserId;
            var usuario = dataContext.buscarUsuario(id);
            dataContext.empresas.Find(id);
            var consultasToque = dataContext.totalToques(consultas,fecha.fecha1, fecha.fecha2, usuario.idCodigo);
            return View(consultasToque);
        }

        
        [HttpGet]
        public ActionResult Agregar()
        {
            
            return View();
        }

        [HttpPost]
        public ActionResult Agregar(Usuario usuario, string password)
        {
            // Creo un nuevo usuario

            {
                if (ModelState.IsValid)
                {
                    WebSecurity.CreateUserAndAccount(usuario.username, password, new
                    {
                        realName = usuario.realName,
                        mail = usuario.mail,
                        idCodigo =usuario.idCodigo
                    });

                    return RedirectToAction("Index");
                }
                return View("Agregar", model: usuario);
            }
        }



        public ActionResult consultarIdEmpresa(int id)
        {

            Empresa empresa = dataContext.buscarEmpresa(id);
            return Json(empresa, JsonRequestBehavior.AllowGet);



        }




        [HttpGet]
        public ActionResult Editar(int id)
        {
            Usuario usuario = dataContext.usuarios.Find(id);
            return View(model: usuario);
        }

        [HttpPost]
        public ActionResult Editar(Usuario usuario)
        {
            if (ModelState.IsValid)
            {

                Usuario usuarioBase = dataContext.usuarios.Find(usuario.id);
                usuarioBase.realName = usuario.realName;
                usuarioBase.mail = usuario.mail;

                dataContext.SaveChanges();
                return RedirectToAction("Index");
            }

            return this.View(usuario);
        }




        public ActionResult Borrar(int id)
        {
            var usuario = dataContext.usuarios.Find(id);
            dataContext.usuarios.Remove(usuario);
            dataContext.SaveChanges();

            return RedirectToAction("index");
        }

   
    }
}
